import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class WindowGoods extends JFrame implements ActionListener {
    File file = null;
    JMenuBar bar;
    JMenu fileMenu;
    JMenuItem 录入, 显示;
    JTextArea show;
    InputArea inputMessage;
    JPanel pCenter;
    JTable table;
    Object 表格单元[][], 列名[] = {"名称", "库存", "单价"};
    CardLayout card;

    WindowGoods() {
        file = new File("库存.txt"); //存放链表的文件
        录入 = new JMenuItem("录入");
        显示 = new JMenuItem("显示");
        bar = new JMenuBar();
        fileMenu = new JMenu("菜单选项");
        fileMenu.add(录入);
        fileMenu.add(显示);
        bar.add(fileMenu);
        setJMenuBar(bar);
        录入.addActionListener(this);
        显示.addActionListener(this);
        inputMessage = new InputArea(file); //创建录入截面
        card = new CardLayout();
        pCenter = new JPanel();
        pCenter.setLayout(card);
        pCenter.add("录入", inputMessage);
        add(pCenter, BorderLayout.CENTER);
        setVisible(true);
        setBounds(100, 50, 420, 380);
        validate();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == 录入) {
            card.show(pCenter, "录入");
        } else if (e.getSource() == 显示) {
            try {
                FileInputStream fi = new FileInputStream(file);
                ObjectInputStream oi = new ObjectInputStream(fi);
                LinkedList<Goods> goodsList = (LinkedList<Goods>) oi.readObject();
                fi.close();
                oi.close();
                int length = goodsList.size();
                表格单元 = new Object[length][3];
                table = new JTable(表格单元, 列名);
                pCenter.removeAll();
                pCenter.add("录入", inputMessage);
                pCenter.add("显示", new JScrollPane(table));
                pCenter.validate();
                Iterator<Goods> iter = goodsList.iterator();
                int i = 0;
                while (iter.hasNext()) {
                    Goods 商品 = iter.next();
                    表格单元[i][0] = 商品.getName();
                    表格单元[i][1] = 商品.getMount();
                    表格单元[i][2] = 商品.getPrice();
                    i++;
                }
                table.repaint();
            } catch (Exception ee) {
            }
            card.show(pCenter, "显示");
        }
    }
}
